package uniandes.cupi2.musiteka.servidor.mundo.musiteka1;

import java.io.Serializable;
import java.util.ArrayList;

import uniandes.cupi2.musiteka.servidor.mundo.ICancion;
import uniandes.cupi2.musiteka.servidor.mundo.IGenero;

public class Genero implements IGenero, Serializable
{

    // -----------------------------------------------------------------
    // Constantes
    // -----------------------------------------------------------------

	
	// -----------------------------------------------------------------
    // Atributos
    // -----------------------------------------------------------------
	/**
	 * 
	 */
	private String nombre;
    /**
     * Arraylist que contiene las canciones de un genero
     */
	
    private ArrayList<ICancion> canciones;
	// -----------------------------------------------------------------
    // Constructor
    // -----------------------------------------------------------------
	/**
	 * 
	 */
	public Genero(String nNombre)
	{
        nombre=nNombre;
        canciones = new ArrayList();
		
	}
	
	// -----------------------------------------------------------------
    // Metodos
    // -----------------------------------------------------------------
	/**
	 * 
	 */
	public void cambiarNombre(String nNombre) 
	{
		nombre=nNombre;
		
	}

	/**
	 * 
	 */
	public String darNombre() {
		return nombre;
	}

    public int darCancionesPorGenero( )
    {
        return canciones.size( );
    }

    public IteradorMusiteka1 mostrarCancioensGenero(  )
    {
        return new IteradorMusiteka1<ICancion>(canciones);
    }

    public void agregarCancion( String nNombre, String nArtista, String nGenero, String nRuta,String nDuracion )
    {
        // TODO Auto-generated method stub
        Cancion can=new Cancion( nNombre,  nArtista,  nGenero, nRuta,nDuracion );
        canciones.add( can );
    }

	public ArrayList darCanciones() {
		// TODO Auto-generated method stub
		return canciones;
	}
	
	public String toString(){
		return nombre;
	}

	
    	
}
